package com.log.administrator;

import com.log.resolver.interfaces.LogBody;
import com.log.resolver.interfaces.LogDescribe;
import com.log.unit.LogContext;

import java.lang.reflect.Method;
import java.util.Map;

/**
 * @ClassName LogManage
 * @Author xiezhuocai
 * @Description TODO
 * @Date 2022/5/12 20:35
 */
public interface LogManage {

    /**
     *  通过spEL解析方法上的参数
     * @param logValue 需要解析的key=value对
     * @param rootObject 解析所在的对象
     * @param method 解析的方法
     * @param args 方法的参数
     * @return
     */
    Map<String,String> spELFun(Map<String,String> logValue, Object rootObject, Method method, Object[] args);


    /**
     *  获取解析Context
     * @return
     */
    LogContext getLogContext();

    /**
     *  获取解析LogBody
     * @return
     */
    LogBody getLogBody();

    /**
     *  获取解析LogDescribe
     * @return
     */
    LogDescribe getLogDescribe();

}
